package pers.zb.center.service.user.api.impl.activemq;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;
import pers.zb.center.common.core.util.JsonUtil;
import pers.zb.center.service.user.api.activemq.UserQueueMessageService;
import pers.zb.center.service.user.entity.sys.SysUser;

import javax.annotation.Resource;
import javax.jms.Queue;

@Service("queueMessageServiceImpl")
public class QueueMessageServiceImpl implements UserQueueMessageService {

    private Logger logger = LoggerFactory.getLogger(getClass());

    /**
     * spring消息发送模版
     */
    @Resource(name = "wechatSubscribeTemplateMessageTemplate")
    private JmsTemplate wechatSubscribeTemplateMessageTemplate;


    /**
     * 微信关注事件，消息目的地
     */
    @Resource(name = "wechatSubscribeQueueDestination")
    private Queue wechatSubscribeQueueDestination;


    @Override
    public void sendWechatSubscribeQueueMessage(SysUser user) {
        // getJmsTemplate().convertAndSend(user);//如果配置文件中指定了目的地，可以使用这句话发送消息。

        logger.debug("WechatSubscribeQueueDestination【微信关注发送openid消息】， 消息生产者开始发送消息：", JsonUtil.toJson(user));

        // 目的地、模版，都是通过注入方式引入，并不是通过配置bean的方式引入.
        wechatSubscribeTemplateMessageTemplate.convertAndSend(this.wechatSubscribeQueueDestination, user);
    }

}
